package dados;

import negocios.Produto;
import negocios.excecoes.GestockException;

public class RepositorioProduto implements IRepositorioProduto {

	private static RepositorioProduto instancia = null;

	public static RepositorioProduto getInstancia() {

		if (instancia == null) {
			instancia = new RepositorioProduto();
		}

		return instancia;

	}

	public void cadastrarProduto(Produto produto) throws GestockException {

		try {
			ConexaoBDProduto conecta = new ConexaoBDProduto();
			conecta.cadastrarProduto(produto);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public Produto consultarProduto(String idProduto) throws GestockException {
		Produto produto = null;
		try {
			ConexaoBDProduto conecta = new ConexaoBDProduto();
			produto = conecta.consultarProduto(idProduto);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

		return produto;
	}

	public void incrementarQuantidadeProduto(String idProduto, String quantidade)
			throws GestockException {
		try {
			ConexaoBDProduto conecta = new ConexaoBDProduto();
			conecta.incrementarQuantidadeProduto(idProduto, quantidade);
		}

		catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void alterarQuantidadeProduto(String idProduto, String quantidade)
			throws GestockException {
		try {
			ConexaoBDProduto conecta = new ConexaoBDProduto();
			conecta.alterarQuantidadeProduto(idProduto, quantidade);
		}

		catch (Exception e) {
			e.printStackTrace();
		}
	}

	public Object[][] listarProduto(String nome) throws GestockException {
		Object[][] produtos = null;
		try {
			ConexaoBDProduto conecta = new ConexaoBDProduto();
			produtos = conecta.listarProdutos(nome);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

		return produtos;
	}

	public void alterarProduto(Produto produto) throws GestockException {
		try {
			ConexaoBDProduto conecta = new ConexaoBDProduto();
			conecta.alterarProduto(produto);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

	}

}
